﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<post>
  <author>Admin</author>
  <title>采用一个自创的"验证框架"实现对数据实体的验证[上篇]</title>
  <description />
  <content>&lt;p&gt;&lt;span style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; line-height: 24px;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; padding: 0px;"&gt;昨天晚上突发奇想，弄了一个简易版的验证框架，用于进行数据实体的验证。目前仅仅实现基于属性的声明式的验证，即通过自定义特性（Custom Attribute）的方式将相应的Validator应用到对应的属性上，并设置相应的验证规则。本篇文章分上下两篇，上篇介绍如果来使用这个验证框架，下面介绍背后的设计原理和具体实现。&lt;/p&gt;
&lt;h1 style="font-size: 12px; font-weight: normal; padding: 0px; margin: 0px;"&gt;&lt;span style="font-size: medium; padding: 0px; margin: 0px;"&gt;&lt;strong style="padding: 0px; margin: 0px;"&gt;一、定义最简单的验证规则&lt;/strong&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; padding: 0px;"&gt;我们先看看一个最简单的验证规则如何应用到对应的实体类型上。在这里我们模拟一个有趣的场景：找对象，不论是找男朋友还是女朋友，还是不男不女的朋友，都具有一定的标准。在这里我们把这些标准表示成&amp;ldquo;&lt;span style="color: #ff0000; padding: 0px; margin: 0px;"&gt;验证规则&lt;/span&gt;&amp;rdquo;。为了简单，我们仅仅验证对方的年龄是否符合我们的要求，为此我定义了如下一个简单的Mate类型：&lt;/p&gt;
&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="/BlogEngine.NET/image.axd?picture=2010%2f10%2f6.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
  <ispublished>True</ispublished>
  <iscommentsenabled>True</iscommentsenabled>
  <pubDate>2010-10-13 10:43:00</pubDate>
  <lastModified>2010-10-13 10:45:32</lastModified>
  <raters>0</raters>
  <rating>0</rating>
  <slug>e98787e794a8e4b880e4b8aae887aae5889be79a84e9aa8ce8af81e6a186e69eb6e5ae9ee78eb0e5afb9e695b0e68daee5ae9ee4bd93e79a84e9aa8ce8af81e4b88ae7af87</slug>
  <tags>
    <tag>试试</tag>
    <tag>中文</tag>
  </tags>
  <comments>
    <comment id="59bdb87e-6314-49a5-8f73-8f722dd5d2da" parentid="00000000-0000-0000-0000-000000000000" approved="True">
      <date>2010-10-13 10:58:44</date>
      <author>Admin</author>
      <email>lancezhang@live.com</email>
      <country>cn</country>
      <ip>127.0.0.1</ip>
      <website>http://www.google.com/</website>
      <moderatedby>Rule:authenticated</moderatedby>
      <avatar />
      <content>实体类型上。在这里我们模拟一个有趣的场景：找对象，不论是找男朋友还是女朋友，还是不男不女的朋友，都具有一定的标准。在这里我们把这些标准表示成“验证规则”。为了简单，我们仅仅验证对方的年龄是否符合我们的要求，为此我定义了如下一个简单的Mate类型：</content>
    </comment>
  </comments>
  <categories>
    <category>c223353c-1aef-4a46-afd1-cb61ab1a792d</category>
  </categories>
  <notifications />
</post>